package com.finalterm.order.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.finalterm.order.dto.OrderCreateDTO;
import com.finalterm.order.vo.OrderVO;

/**
 * 订单服务接口
 */
public interface OrderService {
    
    /**
     * 创建订单
     */
    OrderVO createOrder(Long userId, OrderCreateDTO createDTO);
    
    /**
     * 获取订单详情
     */
    OrderVO getOrderById(Long orderId);
    
    /**
     * 根据订单号获取订单
     */
    OrderVO getOrderByOrderNo(String orderNo);
    
    /**
     * 分页查询用户订单
     */
    Page<OrderVO> getUserOrders(Long userId, int page, int size);
    
    /**
     * 更新订单状态
     */
    boolean updateOrderStatus(String orderNo, String status);
    
    /**
     * 取消订单
     */
    boolean cancelOrder(String orderNo);
    
    /**
     * 处理超时订单
     */
    void handleTimeoutOrders();
}
